package com.xcl.mapper;

import com.xcl.pojo.Information;
import com.zzg.entity.Costbreakdown;
import com.zzg.entity.Finance;
import com.zzg.entity.Financing;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName FinancingMapper
 * @Description 到付核销的数据访问层\
 * @Author: xiaochaolei
 * @date 2021/7/22 15:23
 * @Version 1. 0
 */
@Mapper
public interface FinancingMapper {
    /**
     * 得到所有的到付核销
     * @return 得到所有的到付核销
     */
    public List<Financing> getAllFinancing();

    /**
     * 分页查询到付核销
     * @param page 页码数
     * @param limit 条目数
     * @param waybill_id 运单号
     * @param city 出发地
     * @param sub_id 到达分站
     * @param arrivalCity 到达城市
     * @param eeforwardingUnit 收货单位
     * @param forwardingUnit 发货单位
     * @param date 日期
     * @param paymentMethod 付款方式
     * @param state 运单状态
     * @param verification 是否核销
     * @return 财务集合
     */
    public List<Financing> getAllFinancingByLimit(
            @Param(value = "page") int page,
            @Param(value = "limit") int limit,
            @Param(value = "waybill_id") String waybill_id,
            @Param(value = "city") String city,
            @Param(value = "sub_id") String sub_id,
            @Param(value = "arrivalCity") String arrivalCity,
            @Param(value = "eeforwardingUnit") String eeforwardingUnit,
            @Param(value = "forwardingUnit") String forwardingUnit,
            @Param(value = "date") String date,
            @Param(value = "paymentMethod") String paymentMethod,
            @Param(value = "state") String state,
            @Param(value = "verification") String verification
    );

    /**
     * 根据运单号修改是否核销状态
     * @param waybill_id 运单号
     * @return 影响行数
     */
    public int updateVerification(@Param(value = "waybill_id") String waybill_id);

    /**
     * 根据运单号查询到货运信息
     * @param waybill_id 运单号
     * @return 财务信息
     */
    public Information getFreightinformationTableByWaybill_id(@Param(value = "waybill_id") String waybill_id);

    /**
     * 根据运单id查询到财务信息
     * @param costBreakdown_id 运单id
     * @return 财务信息
     */
    public Finance getCostbreakdownById(@Param(value = "waybill_id") String costBreakdown_id);

    /**
     * 修改财务详细信息
     * @param costbreakdown 财务详细信息
     * @return 影响行数
     */
    public int updateCostBreakdown(Costbreakdown costbreakdown);

    /**
     * 修改财务信息
     * @param financing 财务信息
     * @return 影响行数
     */
    public int updateFinancing(Finance financing);
}
